const express = require( 'express' );

const userRouter = express.Router();

const users = [] ; // 用来存放用户信息的数组

userRouter.get( '/sign/in' , (req,resp)=> { 
    console.log( req.method , req.originalUrl );
    console.log( '打开用户登录页面' );
    // 重定向 到 用户登录页面
    resp.redirect( '/user/sign-in.html' );
} );

userRouter.post( '/sign/in' , (req,resp)=> { 
    let p = req.body ;
    // 根据用户名寻找用户
    let user = users.find( u => u.username === p.username );
    if( user ) {
        if( user.password === p.password ){
            resp.send( `<h3>欢迎${user.username}登录</h3>` );
        } else {
            resp.send(`<h3>密码错误，登录失败</h3>`);
        }
    } else {
        resp.send(`<h3>用户${p.username}不存在</h3>`);
    }
} );

userRouter.get( '/sign/up' , (req,resp)=> { 
    console.log( req.method , req.originalUrl );
    console.log( '打开用户注册页面' );
    // 重定向 到 用户登录页面
    resp.redirect( '/user/sign-up.html' );
} );

userRouter.post( '/sign/up' , (req,resp)=> { 
    // 接受来自表单的数据
    let p = req.body ;
    console.log( p );

    if( !p.username ) { // 若 username 为 null 或 undefined 或 空串
        resp.send('<h3>注册失败！(你咋不填用户名嘞)</h3>');
        return ;
    }

    if( !p.password ) { // 若 password 为 null 或 undefined 或 空串
        resp.send('<h3>注册失败！(你咋不填密码嘞)</h3>');
        return ;
    }

    if( !p.confirm ) { // 若 confirm 为 null 或 undefined 或 空串
        resp.send('<h3>注册失败！(你咋不确认密码嘞)</h3>');
        return ;
    }

    if( p.password != p.confirm ){
        resp.send('<h3>注册失败！(两次输入密码不一致)</h3>');
        return ;
    }

    let user = { username: p.username , password: p.password }
    
    users.push( user );

    // 重定向 到 用户列表
    resp.redirect( '/user/list' );
} );

userRouter.get( '/list' , (req,resp)=>{

    let t = '<table align="center" border="1">';

    users.forEach( u => {
        t += `<tr><td>${u.username}</td><td>${u.password}</td></tr>`;
    });

    t += '</table>';

    t += '<p align="center"><a href="/index.html">返回首页</a></p>' ;

    resp.send( t );
});

userRouter.get( '/sign/out' ,(req,resp)=> { 
    resp.send('<h3>用户退出登录</h3>') 
} );

// 导出模块
module.exports = userRouter ;